// pages/profile/index.ts
//获取页面栈
const pageStack = getCurrentPages()
Page({
  onLoad() {
    const app = getApp()
    //渲染到页面
    this.setData({ ...app.userProfile })
  },
  //获取用户昵称
  getUserNickname(ev) {
    this.updateNickname(ev.detail.value)
  },
  async updateNickname(nickName) {
    if (nickName === '') return
    //调用接口名称
    const { code } = await wx.http.put('/userInfo', { nickName })
    if (code !== 10000) return wx.utils.toast('昵称更新失败！')
    pageStack[0].setData({ nickName })
    // 同步数据到应用实例中
    const app = getApp()
    app.userProfile.nickName = nickName
  },
  getUserAvater(ev) {
    this.updateAvatar(ev.detail.avatarUrl)
  },
  updateAvatar(avatar) {
    //调用api
    wx.uploadFile({
      // 接口地址
      url: wx.http.baseURL + '/upload',
      // 待上传路径
      filePath: avatar,
      name: 'file',
      header: {
        // 登录状态
        Authorization: 'Bearer ' + getApp().token,
      },
      formData: { type: 'avatar' },
      success: (result) => {
        // 处理返回数据
        const data = JSON.parse(result.data)
        // 检测接口是否调用成功
        if (data.code !== 10000) return wx.utils.toast('上传头像失败!')
        // 渲染头像
        pageStack[0].setData({ avatar: data.data.url })
        this.setData({ avatar: data.data.url })
        const app = getApp()
        app.userProfile.avatar = data.data.url
      },
    })
  },
})
